package com.small.push.dto;

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import com.small.common.pojo.BaseDTO;

/**
 * 发送给微信的发送公众号模版消息的传输对象
 * @author dingyou
 * @version 1.0
 * @date 2019-01-10
 */
public class WeChatTemplateMsgDTO extends BaseDTO {
    /** 接收者openid nonNull */
    @JSONField(name = "touser")
    private String toUser;
    /** 模板ID nonNull */
    @JSONField(name = "template_id")
    private String templateId;
    /** 模板跳转链接（海外帐号没有跳转能力） */
    private String url;
    /** 跳小程序所需数据，不需跳小程序可不用传该数据 */
    @JSONField(name = "miniprogram")
    private MiniProgram miniProgram;
    /** 模板数据 */
    private JSONObject data;

    public static class MiniProgram extends BaseDTO {
        /** 所需跳转到的小程序appid(该小程序appid必须与发模板消息的公众号是绑定关联关系，暂不支持小游戏) */
        @JSONField(name = "appid")
        private String appId;
        /** 所需跳转到小程序的具体页面路径，支持带参数,（示例index?foo=bar），暂不支持小游戏 */
        @JSONField(name = "pagepath")
        private String pagePath;

        public String getAppId() {
            return appId;
        }

        public MiniProgram setAppId(String appId) {
            this.appId = appId;
            return this;
        }

        public String getPagePath() {
            return pagePath;
        }

        public MiniProgram setPagePath(String pagePath) {
            this.pagePath = pagePath;
            return this;
        }
    }

    public String getToUser() {
        return toUser;
    }

    public WeChatTemplateMsgDTO setToUser(String toUser) {
        this.toUser = toUser;
        return this;
    }

    public String getTemplateId() {
        return templateId;
    }

    public WeChatTemplateMsgDTO setTemplateId(String templateId) {
        this.templateId = templateId;
        return this;
    }

    public String getUrl() {
        return url;
    }

    public WeChatTemplateMsgDTO setUrl(String url) {
        this.url = url;
        return this;
    }

    public MiniProgram getMiniProgram() {
        return miniProgram;
    }

    public WeChatTemplateMsgDTO setMiniProgram(MiniProgram miniProgram) {
        this.miniProgram = miniProgram;
        return this;
    }

    public JSONObject getData() {
        return data;
    }

    public WeChatTemplateMsgDTO setData(JSONObject data) {
        this.data = data;
        return this;
    }
}
